package Logica;

import java.sql.Time;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Calendar;
import java.util.LinkedList;
import java.util.List;

@Entity
public class Turno implements Serializable {

    @Id
    private int nroTurno;
    @Basic
    @Temporal(javax.persistence.TemporalType.DATE)
    private Calendar fechaTurno;
    @Basic
    private Time horaTurno;
    @Basic
    private Time duracion;
    @Basic
    private Time tiempoEstimado;
    @OneToOne
    private Cliente unCliente;
    @ManyToOne
    private Empleado unEmpleado;
    @OneToOne
    private Diagnostico unDiagnostico;
    @OneToOne
    private Vehiculo unVehiculo;
    @OneToMany
    private Set<PedidoRepuesto> pedidos;
    @ManyToOne
    private DiaLaboral unDiaLaboral;
    @OneToOne
    private Taller unTaller;

    
    public Turno() {
    }
    
    public Turno(int nroTurno, Calendar fechaTurno, Time horaTurno, Time duracion, Time tiempoEstimado,Cliente unCliente, 
            Empleado unEmpleado, Diagnostico unDiagnostico, Vehiculo unVehiculo, DiaLaboral unDiaLaboral, Taller unTaller) {

        this.nroTurno = nroTurno;
        this.fechaTurno = fechaTurno;
        this.horaTurno = horaTurno;
        this.duracion = duracion;
        this.tiempoEstimado = tiempoEstimado;
        this.unCliente = unCliente;
        this.unEmpleado = unEmpleado;
        this.unDiagnostico = unDiagnostico;
        this.unVehiculo = unVehiculo;

        this.pedidos = new HashSet();
        this.unDiaLaboral = unDiaLaboral;
        this.unTaller = unTaller;
    }

    public Set<PedidoRepuesto> getPedidos() {
        return pedidos;
    }

    public void setPedidos(Set<PedidoRepuesto> pedidos) {
        this.pedidos = pedidos;
    }

    public Taller getUnTaller() {
        return unTaller;
    }

    public void setUnTaller(Taller unTaller) {
        this.unTaller = unTaller;
    }

    public void setUnEmpleado(Empleado unEmpleado) {
        this.unEmpleado = unEmpleado;
    }

    public Empleado getUnEmpleado() {
        return unEmpleado;
    }

    public void setUnCliente(Cliente unCliente) {
        this.unCliente = unCliente;
    }

    public Cliente getUnCliente() {
        return unCliente;
    }

    

    public int getNroTurno() {
        return nroTurno;
    }

    public void setNroTurno(int nroTurno) {
        this.nroTurno = nroTurno;
    }

    public Calendar getFechaTurno() {
        return fechaTurno;
    }

    public void setFechaTurno(Calendar fechaTurno) {
        this.fechaTurno = fechaTurno;
    }

    public Time getHoraTurno() {
        return horaTurno;
    }

    public void setHoraTurno(Time horaTurno) {
        this.horaTurno = horaTurno;
    }

    public Time getDuracion() {
        return duracion;
    }

    public void setDuracion(Time duracion) {
        this.duracion = duracion;
    }

    public Time getTiempoEstimado() {
        return tiempoEstimado;
    }

    public void setTiempoEstimado(Time tiempoEstimado) {
        this.tiempoEstimado = tiempoEstimado;
    }

    public Diagnostico getUnDiagnostico() {
        return unDiagnostico;
    }

    public void setUnServicio(Diagnostico unDiagnostico) {
        this.unDiagnostico = unDiagnostico;
    }

    public Vehiculo getUnVehiculo() {
        return unVehiculo;
    }

    public void setUnVehiculo(Vehiculo unVehiculo) {
        this.unVehiculo = unVehiculo;
    }

    public DiaLaboral getUnDiaLaboral() {
        return unDiaLaboral;
    }

    public void setUnDiaLaboral(DiaLaboral unDiaLaboral) {
        this.unDiaLaboral = unDiaLaboral;
    }



    public void setUnDiagnostico(Diagnostico unDiagnostico) {
        this.unDiagnostico = unDiagnostico;
    }
    
}
